﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //编写一个程序，以实现机器人的层次结构，此层次结构将至少包含
            //抽象类机器人类 Robot 、炒菜机器人类 CookRobot 、传菜机器人类 DeliveryRobot 。
            //Robot类应包含机器人 姓名name字段、 机器人工作的方法 Working()，该方法应该在子类中被实现，
            //机器人工作的方式很多，所以Working()方法应该被定义为抽象方法。

            //可以在 CookRobot 中 添加一个代表 菜 的类型的字段，用枚举类型；
            //在 DeliveryRobot 中添加一个代表连续工作时长的字段 hours。
            //CookRobot和DeliveryRobot应实现具体的Working()方法。

            //在主类中定义一个方法，形参数据类型是 string ，返回值数据类型是 Robot ，
            //方法中实现如果传入的字符串是“ 炒菜 ”，那就返回 CookRobot 的实例（当然是要用 Robot 的 引用指向 的），
            //如果传入的字符串是“ 传菜 ”，那就返回 DeliveryRobot 的实例。

            //Main方法中：用户输入所选择的机器人的功能，根据用户的输入 Robot 执行对应的功能。

            //CookRobot robot1 = new CookRobot("aji");
            //robot1.working();

            //DeliveryRobot robot2 = new DeliveryRobot("小爱", 3);
            //robot2.working();
            Console.WriteLine("请输入一个功能：");
            string able = Console.ReadLine();

            Robot robot = S(able);
            robot.working();
        }

        public static Robot S(string able)
        {
            Robot robot = new CookRobot();
            if (able == "炒菜")
            {
                robot = new CookRobot("aji");
            }
            if (able == "传菜")
            {
                robot = new DeliveryRobot("aji",3);
            }
            return robot;
        }

    }
}
